/**
 * 
 */
package org.vsg.stock.extension.vo;

import java.util.Date;
import java.util.List;
import java.util.Vector;

/**
 * @author Bill Vison
 *
 */
public class AnalysisKLineCyclePatternVO {
	
	private String stockCode;
	
	private Date startDate;
	
	private Date endDate;
	
	private int cycle;
	
	private double upShadowRatio;
	
	private double upEntityRatio;
	
	private double downEntityRatio;
	
	private double downShadowRatio;
	
	private double cycleDirection;
	
	private short firstPointState;
	
	private short lastPointState;
	
	public static final short OVER_UPPER_ENTITY = 4;
	
	public static final short IN_UPPER_ENTITY = 3;
	
	public static final short IN_LOWER_ENTITY = 2;
	
	public static final short UNDER_LOWER_ENTITY = 1;
	
	
	private List<String> suitableModelPattern = new Vector<String>();

	public String getStockCode() {
		return stockCode;
	}

	public void setStockCode(String stockCode) {
		this.stockCode = stockCode;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public int getCycle() {
		return cycle;
	}

	public void setCycle(int cycle) {
		this.cycle = cycle;
	}

	public double getUpShadowRatio() {
		return upShadowRatio;
	}

	public void setUpShadowRatio(double upShadowRatio) {
		this.upShadowRatio = upShadowRatio;
	}

	public double getUpEntityRatio() {
		return upEntityRatio;
	}

	public void setUpEntityRatio(double upEntityRatio) {
		this.upEntityRatio = upEntityRatio;
	}

	public double getDownEntityRatio() {
		return downEntityRatio;
	}

	public void setDownEntityRatio(double downEntityRatio) {
		this.downEntityRatio = downEntityRatio;
	}

	public double getDownShadowRatio() {
		return downShadowRatio;
	}

	public void setDownShadowRatio(double downShadowRatio) {
		this.downShadowRatio = downShadowRatio;
	}

	public double getCycleDirection() {
		return cycleDirection;
	}

	public void setCycleDirection(double cycleDirection) {
		this.cycleDirection = cycleDirection;
	}

	public short getFirstPointState() {
		return firstPointState;
	}

	public void setFirstPointState(short firstPointState) {
		this.firstPointState = firstPointState;
	}

	public short getLastPointState() {
		return lastPointState;
	}

	public void setLastPointState(short lastPointState) {
		this.lastPointState = lastPointState;
	}

	
	public void addStandardProcessorModuleKey(String key) {
		if (!suitableModelPattern.contains(key)) {
			suitableModelPattern.add(key);
		}
	}


	
	
}
